MOSN Contributor 采访|开源可以是做力所能及的事
随着 MOSN 进入 1.0 稳定版本,社区也涌进了一些新鲜的血液 ,有开源经验丰富的大四同学、热门开源项目的负责人和渴求找到合适自己开源项目的开发者,大家都在社区一边学习一边贡献,从兴趣出发,沉迷于热爱。
我们共同的目标是社区共建,大家基于开源的方式协作,把产品做大做强。
以下三位是 MOSN 社区的新晋 Contributor,听听他们说怎么看待开源、走近开源,又是为什么选择 MOSN 社区的呢?
● 大四学生,把开源融入成长和工作
冷酷.(蚂蚁实习生)
贡献内容:
Bolt 协议新增 GoAway 实现,具备协议级 proxy 配置开关;
发现并修复 MOSN 多协议 proxy 配置 bug。
我接触开源比较早,大二的时候和朋友一起写过一个小开源项目,攒了百来个 star;暑假参加了阿里巴巴开源之夏;现在经常使用 GitHub 上的小工具,给在用的项目提交 issue 和 PR 是一件顺手的事情。
追溯起我和 MOSN 的渊源,在大二的时候就给 MOSN 提交过代码,当时是做项目需要参考,就顺手修了一个简单的 Readme 里的链接显示的 bug。我建议大家一开始可以通过这种任务熟悉 PR 流程,从 fix typo 到真的去发现或者修一些 bug,甚至是做一些 feature 还是有挺长的路要走。
这次给 MOSN 提交代码,也是因为我们的项目需要用其中的功能。对我而言,之前参与开源困难的点在于代码能力差,项目里的概念不了解,甚至都不知道项目的功能,就很难看懂代码,以及参与进去。
从使用一个产品的角度熟悉项目,才能更好得参与开发。所以不必要从很知名的大型开源项目入手,功能多、代码复杂,贡献起来也会很困难。
每次贡献不一定非要是了不起的功能实现,从一些自己常用的 GitHub 上的各种小工具更容易入手,把贡献看作是自己力所能及的事情就简单很多了。
● 跨行业自学代码,开源门槛也没那么高
志彬.(火线安全后端开发)
贡献内容:
为 MOSN 新增/version API,为 Holmes 支持了外部 logger 等特性,以及很多 bugfix 的工作。
作为一个非专科、转行自学,目前是一个 star 12.9k 开源项目( gin-vue-admin )的负责人,其中的辛酸血泪史也是足够艰辛的。
志彬自称是 B 站大学毕业的,看某教育的课程自学 python ,跟着 q1mi 老师的博客和视频学习,期间也开源自己的一些 demo 项目,慢慢参与到一些开源项目,抱着学习的心态来参加贡献(呃... 说实话就是找找哪些地方可以 cv 到我的工作模块里)。
志彬某次夜读听曹春辉大佬有介绍 MOSN,对存储比较感兴趣,想要集成到自己的工作模块里。参与 Holmes 的时候还没有发版,源码也不多,功能也比较少,志彬就看准时间参与到了其中的开发贡献。
谈起自己团队的 gin-vue-admin 项目,志彬的语气里透露着自豪:“我们的项目技术门槛不高,可以自动生成代码,省去一些 curd 的工作。社区成员都是一些小白,所以社区氛围很活跃。虽然对贡献者的数量从没在意过,但是‘自流水’也是源源不短,这些都是用户对我们的认可。
每当用户在社区里说这个项目为他们省去了时间和人力的消耗,都会让我们振奋很久。”
多年经验,总结出判断优秀开源社区的标准:1. 足够稳定 2. 社区氛围够活跃 3. 代码质量(架构结构、模块划分组织比较好)。
“MOSN 社区完全符合以上标准,但是和我们是不同的风格,技术门槛会比较高,是对进阶技术人员的新挑战。之前 MOSN 在飞速发展的阶段,改动会比较频繁,可以接触最前沿的技术,但是稍有不注意就会跟不上步伐。MOSN1.0 到来后,期待社区越来越好。”
● 合适的开源项目,是我“闲逛”来了
骏龙. Shopee Digital Purchase
贡献内容:
针对 Holmes,实现了动态调整参数,抓取事件上报,抓取策略优化等功能,此外还写了新的 readme.md 和两篇使用教程;
对于 MOSN,实现了 stop 和 reload 命令行命令。
开源的第一步,选择合适的项目就很让人头痛,在接触 MOSN 之前,骏龙完全没有开源经验,但是经常在 GitHub 上“闲逛”,但是认为大多数项目门槛比较高,苦于找不到合适的项目和机会去参与。
当时骏龙为了提高服务的稳定性以及降低排查资源问题的难度,需要找一套监控解决方案,偶然通过曹大的博文,发现了 Holmes。过了不久,Holmes 被集成到了 MOSN,便也就开始接触到社区。发现这个开源库功能基本齐全、扩展性也高,特别是 GCHeapDump 这个业界领先的功能,对解决内存升高的问题十分有用。成熟的社区加上刚建设的项目,这简直是为他量身定做。
初识 MOSN 社区,Holmes 还处于萌芽期,除了 Readme 之外的文档资料并不多。还有一些 Holmes 当时不支持的功能,比如动态配置调整与上报。但是自己对这方面很感兴趣兴趣,于是在 GitHub 上提了几个 Issue 讨论,社区回复的速度十分快。后续在社区前辈们的指导下提了 PR,也因此通过 Holmes 的代码设计学习到了很多关于开源组件的设计理念。因此,骏龙决定参与开源社区并贡献代码,以解决实际需求。
在参与贡献前,骏龙做了很多准备,才鼓起勇气提交了 issue:
1.阅读 issue 列表,确认是否真的感兴趣
2.阅读 contribution 文档
3.在 issue 下留言,表达自己的解决方案
4.进入用户交流群,和大家讨论解决方案
当骏龙战战兢兢的靠近开源圈时,MOSN 社区的人德就是助他一臂之力的那个人。“人德前辈给我分配了难度合适的 issue,并且十分细致的 review 了我的代码,细致到日志打印的程度,让一个开源小白很是感动。”
第一次正式参与开源,取得每一步进展的心情都是很激动的,看到 release note 上有自己的 ID 是最有成就感的时刻。
开源最需要和自己的惰性作斗争,带来的成就感也是无可取代的。除此之外,当看到自己的 PR 收到很多修改意见时,或许会让你一时沮丧。不要灰心,这可是摆脱 curd 的第一步!
MOSN 将来会探索集中力量去做更长远的事情,也希望更多感兴趣的朋友能够参与进来,和社区成员一起成长是我们愿意看到的状态。
点击“阅读原文”,更了解 MOSN
了解更多...
MOSN Star 一下✨:
https://github.com/MOSN
也欢迎大家报名 SOFAStack、MOSN 社区
2022 年的开源之夏项目✌️
本周推荐阅读
【2022 开源之夏】欢迎报名SOFAStack 社区项目!
【2022 开源之夏】欢迎报名 MOSN 社区项目!